#include <IRremote.h>  // v2.6.0

int RECV_PIN = 3;  // 3号口接收红外信号
int LED = 2;       // 2号口接LED正极信号
IRrecv irrecv(RECV_PIN);
decode_results results;  // 用于存储编码结果对象
void setup() {
  Serial.begin(9600);
  irrecv.enableIRIn();   // 初始化红外解码
  pinMode(LED, OUTPUT);  // 设置LED引脚为输出接口
  Serial.println("begin...");
}
// 红外遥控器的每个按键都对应了不同的编码，不同的遥控器使用的编码也不相同。
// 出现 “FFFFFF” 编码或者 “0” 编码，是因为使用的是 NEC 协议的遥控器，当按住某按键不放时，其会发送一个重复编码 “FFFFFF” 或者 “0” 编码
void loop() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value, HEX);      // 通过红外遥控输出，串口显示出来，输出结果为16进制
    if (results.value == 0xFFA25D) {         // 通过16进制判断是否是红外的 CH- 键按下
      digitalWrite(LED, HIGH);               // 打开LED
    } else if (results.value == 0xFF629D) {  // 判断是否是红外的 CH 键按下
      digitalWrite(LED, LOW);                // 关闭LED
    }
    irrecv.resume();  // 接收下一个编码
  }
}